package com.dpac.core.shiro.jedis.impl;

import org.springframework.beans.factory.annotation.Autowired;

import com.dpac.core.shiro.jedis.IJedisManager;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

/**
 * @title redis操作接口的实现类
 * @description 请填写相关描述
 * @creator lils
 * @date 2017年8月17日 下午2:47:41
 */
public class JedisManagerImpl implements IJedisManager {
	// 注入一个jedispool对象(通过class为redis.clients.jedis.JedisPool)
	@Autowired
	private JedisPool jedisPool;

	@Override
	public String get(String key) {
		Jedis jedis = jedisPool.getResource();
		String string = jedis.get(key);
		jedis.close();
		return string;
	}

	@Override
	public String set(String key, String value) {
		Jedis jedis = jedisPool.getResource();
		String string = jedis.set(key, value);
		jedis.close();
		return string;
	}

	@Override
	public String hget(String hkey, String key) {
		Jedis jedis = jedisPool.getResource();
		String string = jedis.hget(hkey, key);
		jedis.close();
		return string;
	}

	@Override
	public long hset(String hkey, String key, String value) {
		Jedis jedis = jedisPool.getResource();
		long string = jedis.hset(hkey, key, value);
		jedis.close();
		return string;
	}

	@Override
	public long incr(String key) {
		Jedis jedis = jedisPool.getResource();
		long string = jedis.incr(key);
		jedis.close();
		return string;
	}

	@Override
	public long expire(String key, int second) {
		Jedis jedis = jedisPool.getResource();
		long string = jedis.expire(key, second);
		jedis.close();
		return string;
	}

	@Override
	public long ttl(String key) {
		Jedis jedis = jedisPool.getResource();
		long string = jedis.ttl(key);
		jedis.close();
		return string;
	}

	@Override
	public long del(String key) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.del(key);
		jedis.close();
		return result;
	}

	@Override
	public long hdel(String hkey, String key) {
		Jedis jedis = jedisPool.getResource();
		Long result = jedis.hdel(hkey, key);
		jedis.close();
		return result;
	}

	public JedisPool getJedisPool() {
		return jedisPool;
	}

	public void setJedisPool(JedisPool jedisPool) {
		this.jedisPool = jedisPool;
	}

}
